// pages/order/order.js
const app = getApp();

Page({
  /**
   * 页面的初始数据
   */
  data: {
    activeTab: 0,
    orderList: [],
    isLoading: false
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    if (options.tab) {
      this.setData({
        activeTab: parseInt(options.tab)
      });
    }
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    this.fetchOrderList();
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 切换标签
   */
  switchTab(e) {
    const tab = e.currentTarget.dataset.tab;
    this.setData({
      activeTab: parseInt(tab)
    });
    this.fetchOrderList();
  },

  /**
   * 获取订单列表
   */
  fetchOrderList() {
    const _this = this;
    // 显示加载中
    wx.showLoading({
      title: '加载中',
    });

    _this.setData({
      isLoading: true
    });

    // 获取当前用户ID
    const userInfo = wx.getStorageSync('userInfo');
    if (!userInfo || !userInfo.userId) {
      wx.hideLoading();
      wx.showToast({
        title: '请先登录',
        icon: 'none'
      });
      setTimeout(() => {
        wx.navigateTo({
          url: '/pages/login/login'
        });
      }, 1500);
      return;
    }

    // 构建查询参数 - 只有当activeTab > 0时才发送status参数
    let params = {};
    if (_this.data.activeTab > 0) {
      params.status = _this.data.activeTab;
    }

    // 调用后端API获取订单列表
    wx.mRequest({
      url: `/api/order/user/${userInfo.userId}`,
      method: 'GET',
      data: params,
      success(res) {
        if (res.code === 0) {
          console.log('订单列表响应:', res);
          
          // 处理订单状态文本
          const orderList = res.data.map(item => {
            let statusText = '';
            switch(item.status) {
              case 1: statusText = '待支付'; break;
              case 2: statusText = '已支付'; break;
              case 3: statusText = '已完成'; break;
              case 4: statusText = '已取消'; break;
              default: statusText = '未知状态';
            }
            
            // 补充默认图片
            if (!item.image) {
              item.image = '/img/logo.png';
            }
            
            return {...item, statusText};
          });
          
          _this.setData({
            orderList: orderList,
            isLoading: false
          });
        } else {
          wx.showToast({
            title: res.msg || '获取订单失败',
            icon: 'none'
          });
          _this.setData({
            isLoading: false
          });
        }
      },
      fail() {
        wx.showToast({
          title: '网络错误',
          icon: 'none'
        });
        _this.setData({
          isLoading: false
        });
      },
      complete() {
        wx.hideLoading();
      }
    });
  },

  /**
   * 支付订单
   */
  payOrder(e) {
    const orderId = e.currentTarget.dataset.id;
    wx.showModal({
      title: '确认支付',
      content: '确认支付此订单吗？',
      confirmColor: '#4b7bec',
      success: (res) => {
        if (res.confirm) {
          // 显示加载中
          wx.showLoading({
            title: '处理中...',
          });
          
          // 调用支付API
          wx.mRequest({
            url: '/api/payment/pay',
            method: 'POST',
            data: {
              orderId: parseInt(orderId),
              method: 1  // 1-微信支付
            },
            success: (res) => {
              console.log('支付响应:', res);
              wx.hideLoading();
              
              if (res.code === 0) {
                wx.showToast({
                  title: '支付成功',
                  icon: 'success'
                });
                
                // 刷新订单列表
                setTimeout(() => {
                  this.fetchOrderList();
                }, 1500);
              } else {
                wx.showToast({
                  title: res.msg || '支付失败',
                  icon: 'none'
                });
              }
            },
            fail: (err) => {
              console.error('支付请求失败:', err);
              wx.hideLoading();
              wx.showToast({
                title: '支付失败，请重试',
                icon: 'none'
              });
            }
          });
        }
      }
    });
  },

  /**
   * 查看订单详情
   */
  viewOrderDetail(e) {
    const orderId = e.currentTarget.dataset.id;
    // 找到对应的订单
    const order = this.data.orderList.find(item => item.id === orderId);
    
    if (!order) {
      wx.showToast({
        title: '订单信息不存在',
        icon: 'none'
      });
      return;
    }
    
    // 跳转到订单详情页
    const detailPage = order.type === 1 ? '/pages/order/ticket/ticket' : '/pages/order/hotel/hotel';
    
    wx.navigateTo({
      url: `${detailPage}?id=${orderId}`
    });
  },
  
  /**
   * 空状态跳转到景区列表
   */
  goToScenicList() {
    wx.switchTab({
      url: '/pages/scenic/scenic'
    });
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    this.fetchOrderList();
    wx.stopPullDownRefresh();
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
    // 可添加加载更多订单的逻辑
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {
    return {
      title: '我的旅游订单',
      path: '/pages/order/order'
    };
  }
})